草庐IT

SQL 语句

全部标签

php - 如何演示二阶 SQL 注入(inject)?

所以我一直在尝试复制二阶SQL注入(inject)。这是我准备的两个基于php的站点的示例模板。我们就称它为选民登记表吧。用户可以注册,然后您可以检查您是否是注册选民。插入.php";$qry=mysql_query($sql_statement,$conn)||die(mysql_error());mysql_close($conn);Echo"Datainsertedsuccessfully";}?>选择.php";$result=mysql_query($sql,$conn);$row=mysql_fetch_row($result);$sql1="SELECT*FROMcana

PHP Postgres PDO 驱动不支持预处理语句?

我是不是疯了,还是PostgresPDO驱动程序不支持准备好的语句,而是在客户端模拟它们?以下代码为prepare()调用返回NOERROR,即使它应该返回。相反,它会在调用execute()时返回适用的错误。编辑:根据DanielVérité的说法,我错了,我添加了他建议的代码。我仍然得到错误。我的代码现在如下所示,添加了Daniel的行。setAttribute(PDO::ATTR_EMULATE_PREPARES,false);//assuggestedbyDaniel$sth=$pdo->prepare('COMPLETEGARBAGE');echo"[prepare]erro

php - 在 MySQLi 准备好的语句中,STMT 代表什么?

MySQLi准备好的语句使用变量$stmt但我找不到STMT代表什么或为什么使用它。对于其他变量(例如$query和$results),我一直很理解,我只是想知道,为什么$stmt,它背后的历史是什么? 最佳答案 $stmt表示单词$statement。越短越好:D 关于php-在MySQLi准备好的语句中,STMT代表什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/217

php - 从表 sql server (php) 获取元数据

我正在尝试从我的数据库(sqlserver)上的表中获取元数据。我执行查询以在SqlManagementStudio上获取该元数据并且它有效但在我执行时在php脚本上显示该错误:$row=sqlsrv_fetch_array($res):“在calc_string_size中遇到意外的SQL类型。”我怀疑问题出在php上查询字符串的构建上,但这不是因为我打印了该查询并且它是正确的。当我在选择(列描述)上添加一个字段时出现问题。有人知道这个问题吗? 最佳答案 你可能有sql_变量查询中的某处。这会引发错误->您必须将特定列转换为VAR

php - ctype_alnum 对抗 SQL 注入(inject)

准备好的语句不允许参数化表名。为了确保无法插入任何代码,我想使用ctype_alnum来验证进入数据库模块的所有表名(删除下划线后),以保护应用程序免受其他部分错误的影响。functioninsert($table){if(!ctype_alnum(str_replace("_","",$table)))thrownewException("Invalidtablename");$sql="INSERTINTO$tableVALUESvalue=:value";#...prepareandexecute}是否存在这不足以抵御的攻击?我在想例如multibytecharacterexpl

php - 我这里的错误是什么,显示 SQL 语法错误?

这个问题在这里已经有了答案:SyntaxerrorduetousingareservedwordasatableorcolumnnameinMySQL(1个回答)关闭8年前。$upper=$this->db->query("SELECT*FROM".DB_PREFIX."settingWHEREkey='ndz_limit_up'");$lower=$this->db->query("SELECT*FROM".DB_PREFIX."settingWHEREkey='ndz_limit_down'");请帮忙。

php - if ( $a == $b || $a == $c ) 语句的速记表达式

我知道这段代码可以工作:echo($a==$b||$a==$c)?"Yes":"No";可以这样读:if$aisequalto$bor$aisequalto$c有没有办法让它更短,比如:if$aisequalto$bor$c我已经尝试了很多,包括这个,但仍然没有运气:echo($a==($bxor$c))?"Yes":"No"; 最佳答案 您可以使用in_array:var_dump(in_array($a,[$b,$c]));以你的例子:echoin_array($a,[$b,$c])?'Yes':'No';注意:此语法仅在您有超

php - 如何解决错误 : SQL authentication method unknown in Laravel-MySql

我使用docker,并且我有一个LaravelFramework5.5.25容器和另一个带有mysqlVer8.0.11forLinuxonx86_64(MySQLCommunityServer-GPL)的容器。在我的dockercompose配置中,我有这个:version:"2"services:mysql:image:mysqlports:-"3307:3306"command:--sql_mode=""所以,当Laravel尝试连接到MySql时,出现了这个错误:SQLSTATE[HY000][2054]Theserverrequestedauthenticationmetho

带有 continue 关键字的 PHP 简短 if 语句并提交 else 部分

我有一个for循环for($x=1;$x现在执行时出现错误PHPParseerror:syntaxerror,unexpected'continue'(T_CONTINUE)in/var/www/html/all.phponline21现在,这留给我两个问题:我可以在简短的if语句中使用continue关键字吗?对于短if的else部分,是否可以使用二进制值,如true或false,如果不能,那么如果我对else部分无事可做,我该如何使用短if语句。 最佳答案 continue是一个语句(如for或if)并且必须独立出现。它不能用作

php - 如何防止在 Zend Framework 中编程的应用程序中的 SQL 注入(inject)攻击?

我对采埃孚的安全性没有任何概念。操作数据库一定要用Filter吗?也许绑定(bind)就足够了?这个怎么样:$users->update($data,'id=1');是否应该以某种方式过滤$data数组?请随意写下您对这个问题的任何了解。您能否提供一些有关ZF安全性的好文章的链接(主要是关于SQL注入(inject)和XSS)? 最佳答案 简答虽然ZF采取并提供了一些措施来保护您的应用程序,但您仍应采取与没有ZendFramework时相同的预防措施。关于您的代码片段,请查看关于Zend_DbintheReferenceGuide的